import mitt from 'mitt';

class EventBus {
    public bus;

    constructor() {
        this.bus = mitt();
    }

    // 订阅事件
    on(event, handler) {
        this.bus.on(event, handler);
    }

    // 取消订阅事件
    off(event, handler?) {
        this.bus.off(event, handler);
    }

    // 发布事件
    emit(event, data?) {
        this.bus.emit(event, data);
    }

    // 返回事件总线实例
    getInstance() {
        return this.bus;
    }
}

const Cx_Bus = new EventBus();

export default Cx_Bus;
